genel oyun oynama ne demek?

Genel oyun oynama (General game playing; GGP), birden fazla oyunu başarıyla oynayabilmek için yapay zeka programlarının yaptığı bir tasarımdır12. Satranç gibi birçok oyun için bilgisayarlar, başka bir bağlama aktarılamayan özel olarak tasarlanmış bir algoritma kullanarak bu oyunları oynayacak şekilde programlanmıştır. Örneğin, satranç oynayan bir bilgisayar programı dama oynayamaz. Genel oyun oynama, Yapay Genel Zeka yolunda gerekli bir kilometre taşı olarak kabul edilmektedir3.

Genel video oyunu oynama (General video game playing; GVGP), video oyunları oynama amacına göre ayarlanmış GGP kavramıdır. Video oyunları için, oyun kurallarının ya TD-Gammon4 gibi yapay oyuncular tarafından çoklu yinelemeler üzerinden öğrenilmesi ya da alana özgü bir dilde manuel olarak önceden tanımlanması gerekmektedir. Ayrıca geleneksel GGP'de olduğu gibi yapay oyunculara önceden gönderilmesi gerekmektedir56. 2013'ten başlayarak, Atari 2600789 oyunlarını oynamayı öğrenebilen programların yanı sıra Nintendo Entertainment System oyunlarını oynamayı öğrenebilen bir program da dahil olmak üzere, derin pekiştirmeli öğrenme yaklaşımının ardından önemli ilerleme kaydedilmiştir1011.

Genel oyun oynama teknolojisinin ilk ticari kullanımı 1998 yılında Zillions of Games olmuştur. 2003'ten itibaren çevrimiçi müzayedelerde fiyat pazarlığı kapsamında tedarik zinciri yönetimindeki ticaret acenteleri için genel oyun oynama da önerilmiştir1213.

Tarihçe

1992'de Barney Pell Meta-Game Playing kavramını tanımladı ve "MetaGame" sistemini geliştirdi. Bu, satranç benzeri oyunların oyun kurallarını otomatik olarak oluşturan ilk programdı ve otomatik oyun oluşturmayı kullanan ilk programlardan biriydi. Pell daha sonra Metagamer sistemini geliştirdi. Bu sisteme, Oyun Tanımlama Dili (Game Description Language; GDL) adı verilen özel bir dilde oyun kuralları tanımı verildi. Oyunlar oluşturulduktan sonra herhangi bir insan etkileşimi olmadan, satranç benzeri bir dizi oyunu oynayabildi14.

1998'de ticari sistem Zillions of Games, Jeff Mallett ve Mark Lefler tarafından geliştirildi. Sistem, oyun kurallarını tanımlamak için LISP benzeri bir dil kullandı. Zillions of Games, değerlendirme işlevini, parça hareketliliği, tahta yapısı ve oyun hedeflerine dayalı oyun kurallarından otomatik olarak türetmiştir. Ayrıca bilgisayar satranç sistemlerinde bulunan olağan algoritmaları da kullandı: hareket sıralamalı alfa-beta budama, aktarma tabloları ve benzeri yöntemler. Paket, 2007 yılında eksiksiz bir Forth tabanlı programlama dili içeren alternatif bir metagame motoru olan Axiom eklentisinin eklenmesiyle genişletildi

1998 yılında, z-Tree, Urs Fischbacher tarafından geliştirildi15. z-Tree, deneysel ekonomi için ilk ve en çok atıfta bulunulan yazılım aracıdır. z-Tree, insan deneklerle yapılan oyun teorik deneyleri için oyun kurallarının z-Tree dilinde tanımlanmasına izin vermektedir. Aynı zamanda, insan deneklerle bir oyuna katılan bilgisayar oyuncularının tanımlanmasına da izin vermektedir.16

2005 yılında Stanford Projesi Genel Oyun Oynama kuruldu.17

2012 yılında PyVGDL'nin geliştirilmesi başladı.18

GGP uygulamaları

Stanford projesi

Genel Oyun Oynama, genel oyun oynama için bir platform oluşturmayı amaçlayan Stanford Üniversitesi, California'daki Stanford Mantık Grubunun bir projesidir. GGP yapay zekasını standartlaştırmada en iyi bilinen çabadır ve genellikle GGP sistemleri için standart olarak görülmektedir. Oyunlar, Oyun Tanımlama Dili'nde temsil edilen bir dizi kuralla tanımlanır. Oyuncular, oyunları oynamak için, hareketleri yasallık açısından izleyen ve oyuncuları durum değişikliklerinden haberdar eden bir oyun barındırma sunucusuyla1920 etkileşime girmektedir.

2005 yılından bu yana, AAAI Konferansı'nda (Yapay Zekayı Geliştirme Derneği) yıllık Genel Oyun Oynama yarışmaları düzenlenmektedir. Yarışma, her bir oyundaki performanslarını kaydederek, rakip yapay zekanın çeşitli farklı oyunlar oynama yeteneklerini değerlendirir. Yarışmanın ilk aşamasında, katılımcılar yasal hamleler yapma, üstünlük kazanma ve oyunları daha hızlı tamamlama yeteneklerine göre değerlendirilir. Sonraki ikinci turda, yapay zekalar giderek daha karmaşık oyunlarda birbirleriyle karşılaştırılırlar. Bu aşamada en çok oyunu kazanan yapay zeka yarışmayı kazanır. 2013 yılına kadar da yaratıcısı 10.000 dolarlık bir ödül kazanmaktaydı21.

YılAdGeliştiriciKurum
2005CluneplayerJim CluneUCLA
2006FluxplayerStephan Schiffel and Michael ThielscherDresden University of Technology
2007CadiaplayerYngvi Björnsson and Hilmar FinnssonReykjavik University
2008CadiaplayerYngvi Björnsson, Hilmar Finnsson and Gylfi Þór GuðmundssonReykjavik University
2009AryJean MéhatParis 8 University
2010AryJean MéhatParis 8 University
2011TurboTurtleSam Schreiber
2012CadiaplayerHilmar Finnsson and Yngvi BjörnssonReykjavik University
2013TurboTurtleSam Schreiber
2014SanchoSteve Draper and Andrew Rose
2015GalvaniseRichard Emslie
2016WoodStockEric PietteArtois University

Diğer yaklaşımlar

Oyun kurallarını tanımlamak için kendi dillerini kullanan başka genel oyun oynama sistemleri de vardır. Diğer genel oyun oynama yazılımları şunları içerir:

  • 2009'dan itibaren FRAMASI adlı bir sistem geliştirildi.2223
  • Stephen Tavener (önceki Zillions geliştiricisi)24 tarafından AiAi adlı bir sistem, 2015'ten ve 2017'nin sonlarına kadar aktif olarak geliştirildi.25
  • Unity oyun motoruna dayalı olarak Eylül 2017'de piyasaya sürülen David M. Bennett tarafından PolyGamo Player adlı bir sistem de vardır.26

GVGP uygulamaları

Pekiştirmeli öğrenme

GVGP, potansiyel olarak gerçek video oyunu AI'sını otomatik olarak oluşturmak için ve ayrıca "yöntemsel içerik oluşturma kullanılarak otomatik olarak oluşturulanlar dahil oyun ortamlarını test etmek ve bir insan oyuncunun yararlanabileceği oyundaki potansiyel boşlukları bulmak için" kullanılabilir27. GVGP ayrıca oyun kuralları oluşturmak ve bir oyunun iyi AI ile kötü AI arasında izin verdiği beceri farklılaşmasını karşılaştıran Göreceli Algoritma Performans Profillerine (Relative Algorithm Performance Profiles; RAPP) dayalı bir oyunun kalitesini tahmin etmek için kullanılmıştır28.

Video Oyunu Açıklama Dili

Genel Video Oyunu AI Yarışması (General Video Game AI Competition**;** GVGAI), 2014'ten beri devam ediyor. Bu yarışmada GGP yarışmasında kullanılan masa oyunları yerine 1980'ler dönemi atari ve konsol oyunlarına benzeyen (bazen de baz alınan) iki boyutlu video oyunları kullanılmaktadır. Araştırmacılara ve uygulayıcılara en iyi genel video oyunu oynama algoritmalarını test etmeleri ve karşılaştırmaları için bir yol sundu. Yarışma, GDL ile karıştırılmaması gereken ve kolayca ayrıştırılabilen basit semantik ve komutlar kullanan bir kodlama dili olan Video Oyunu Açıklama Dili (Video Game Description Language; VGDL) ile yazılmış çok sayıda oyunu içeren ilişkili bir yazılım çerçevesine sahiptir. VGDL için bir örnek, 2013 yılında geliştirilen PyVGDL'dir29. GVGP'de kullanılan oyunlar, ölçmesi en basit ve en kolay olduklarından, şimdilik genellikle 2 boyutlu atari oyunlarıdır30. Video oyunlarını yorumlayabilen bir AI oluşturma sürecini basitleştirmek için, bu amaç için oyunlar manuel olarak VGDL'de yazılır. VGDL, Cevap Kümesi Programlama (Answer Set Programming; ASP) ve Evrimsel Algoritma (Evolutionary Algorithm; EA) kullanarak, özellikle prosedürel seviye üretimi için bir oyunu tanımlamak için kullanılabilir. GVGP daha sonra prosedürel seviyelerin geçerliliğini ve ayrıca bir aracının nasıl performans gösterdiğine bağlı olarak seviyelerin zorluk veya kalitesini test etmek için kullanılabilir31.

Algoritmalar

GGP yapay zeka, birden fazla oyun oynamak için tasarlandığından, tasarımı, belirli oyunlar için özel olarak oluşturulmuş algoritmalara dayanamaz. Bunun yerine yapay zeka, yöntemleri çok çeşitli oyunlara uygulanabilen algoritmalar kullanılarak tasarlanmalıdır. Yapay zeka ayrıca, önceki durumların sonucundan ziyade mevcut durumuna uyum sağlayabilen devam eden bir süreç olmalıdır. Bu nedenle, açık döngü teknikleri genellikle en etkilidir32.

GGP yapay zeka geliştirmek için popüler bir yöntem, Monte Carlo ağaç arama ( Monte Carlo tree search; MCTS) algoritmasıdır33. Genellikle UCT yöntemiyle (Ağaçlara Uygulanan Üst Güven Sınırı) birlikte kullanılan MCTS'nin varyasyonları, belirli oyunları daha iyi oynamak ve video oyunu oynamaya uyumlu hale getirmek için önerilmiştir34. Kullanılan ağaç arama algoritmalarının bir başka varyasyonu, mevcut her eylem için mevcut duruma bir alt düğümün oluşturulduğu ve oyun bitene veya süresi bitene kadar en yüksek ortalama ödüle göre sıralanan her çocuğu ziyaret ettiği Yönlendirilmiş Genişlik Öncelikli Arama (Directed Breadth-first Search; DBS)'dir35. Her ağaç arama yönteminde, yapay zeka potansiyel eylemleri simüle eder ve kazanılan puanlar açısından her yolun ortalama en yüksek ödülüne dayalı olarak her birini sıralar36.

Varsayımlar

Oyunlarla etkileşime girebilmek için algoritmaların, oyunların hepsinin ortak özellikleri paylaştığı varsayımı altında çalışması gerekir. Yarı Gerçek: Gerçek Dünyalar ve Kurgusal Dünyalar Arasındaki Video Oyunları kitabında Jesper Juul, oyunların şu tanımını verir: Oyunlar kurallara dayanır, değişken sonuçları vardır, farklı sonuçlar farklı değerler verir, oyuncu çabası sonuçları etkiler, oyuncu sonuçlara bağlıdır ve oyunun tartışılabilir sonuçları vardır37. Bu varsayımları kullanarak, oyuncu girdisini, oyun sonuçlarını ve çeşitli kuralların nasıl uygulandığını ölçerek ve en uygun yolu hesaplamak için algoritmalar kullanarak oyun oynama yapay zekası oluşturulabilir38.

Ayrıca bakınız

Kaynakça

Orijinal kaynak: genel oyun oynama. Creative Commons Atıf-BenzerPaylaşım Lisansı ile paylaşılmıştır.

Footnotes

  1. Soyut Oyunlar ve Bulmacalar için Programlama Dilleri ve Genel Oyuncular | arşivurl = https://web.archive.org/web/20020923083652/http://www.polyomino.com/ | arşivtarihi = 23 Eylül 2002}}

  2. Jesper Juul. Half-Real: Video Games Between Real Rules and Fictional Worlds. MIT Press, 2005.

Kategoriler